package cn.snowheart

/**
 * 范围表达式
 *
 * @author liuwanxiang
 * @version 2019/05/31
 */
class RangeExample {

    static void main(String[] args) {

        // 范围包含最后一个边界值
        def range = 1..5
        range.forEach{ i -> print "${i} " }

        // 范围不包含最后一个边界值
        range = 1..<5
        range.forEach{ i -> print "${i} " }

        // 字符串做范围边界
        range = 'a'..'z'
        range.forEach{ i -> print "${i} " }

        // 可倒序
        range = 5..<1
        range.forEach{ i -> print "${i} " }

        range = 'z'..'a'
        range.forEach{ i -> print "${i} " }

        // 包含特定值
        println range.contains("A")
        // 取下标为index的值
        println range.get(0)
        // 取下限，即最小值
        println range.getFrom()
        // 取上限，即最大值
        println range.getTo()
        // 是否反序
        println range.isReverse()
        // 反序输出
        println range.reverse()
        // 范围大小
        println range.size()
        // 包含下标为start的，且不包含下标为end的子范围
        println range.subList(1,3)

    }

}
